package br.com.framework.client.permissao.negocio;

import java.util.List;

import br.com.framework.client.negocio.ExcecaoDadosDuplicados;
import br.com.framework.client.permissao.entidade.EntityGeneric;
import br.com.framework.client.persistencia.GenericDAOImpl;
import br.com.framework.client.web.TipoOrdenacaoPaginador;

public interface IFacadeGeneric<T extends EntityGeneric, Dao extends GenericDAOImpl<T>> {

	List<T> buscarTodos();

	List<T> buscar(T object, TipoOrdenacaoPaginador tipoOrdenacao, Integer... paginacao);

	T buscar(Integer id);

	int buscarTotal(T objeto);

	void excluir(Integer... ids);

	void excluir(T... objetos);

	abstract void entidadeCadastrada(T objeto) throws ExcecaoDadosDuplicados;

	void salvar(T objeto) throws ExcecaoDadosDuplicados;

}
